home *** CD-ROM | disk | FTP | other *** search
/ PC User 2003 December / Australian PC User - December 2003 (CD2).iso / ads / files / brother / script / menufn.js < prev    next >
Encoding:
Text File  |  2003-08-20  |  22.5 KB  |  549 lines

  1.     var AgntUsr=navigator.userAgent.toLowerCase();
  2.     var AppVer=navigator.appVersion.toLowerCase();
  3.     var DomYes=document.getElementById?1:0;
  4.     var NavYes=AgntUsr.indexOf('mozilla')!=-1&&AgntUsr.indexOf('compatible')==-1?1:0;
  5.     var ExpYes=AgntUsr.indexOf('msie')!=-1?1:0;
  6.     var Opr=AgntUsr.indexOf('opera')!=-1?1:0;
  7.     var Opr6orless=window.opera && navigator.userAgent.search(/opera.[1-6]/i)!=-1 
  8.     if(Opr){NavYes=1;ExpYes=0;}
  9.     var DomNav=DomYes&&NavYes?1:0;
  10.      var DomExp=DomYes&&ExpYes?1:0;
  11.     var Nav4=NavYes&&!DomYes&&document.layers?1:0;
  12.     var Exp4=ExpYes&&!DomYes&&document.all?1:0;
  13.     var Exp6Plus=(AppVer.indexOf("msie 6")!= -1||AppVer.indexOf("msie 7")!= -1)?1:0
  14.     var PosStrt=(NavYes||ExpYes||Opr)&&!Opr6orless?1:0;
  15.     var P_X=DomYes?"px":"",FHtml=null,ScHtml=null,FCmplnt=0,SCmplnt=0;
  16.     var FrstLoc,ScLoc,DcLoc;
  17.     var ScWinWdth,ScWinHght,FrstWinWdth,FrstWinHght;
  18.     var ScLdAgainWin;
  19.     var FirstColPos,SecColPos,DocColPos;
  20.     var RcrsLvl=0;
  21.     var FrstCreat=1,Loadd=0,Creatd=0,IniFlg,AcrssFrms=1;
  22.     var FrstCntnr=null,CurrntOvr=null,CloseTmr=null;
  23.     var CntrTxt,TxtClose,ImgStr;
  24.     var Ztop=100;
  25.     var ShwFlg=0;
  26.     var M_StrtTp=StartTop,M_StrtLft=StartLeft;
  27.     var StaticPos=0;
  28.     var M_Hide=Nav4?'hide':'hidden';
  29.     var M_Show=Nav4?'show':'visible';
  30.     var Par=parent.frames[0]&&FirstLineFrame!=SecLineFrame?parent:window;
  31.     var Doc=Par.document;
  32.     var Bod=Doc.body;
  33.     var Trigger=NavYes&&!Opr?Par:Bod;
  34.  
  35.     MenuTextCentered=MenuTextCentered==1||MenuTextCentered=='center'?'center':MenuTextCentered==0||MenuTextCentered!='right'?'left':'right';
  36.  
  37.     WbMstrAlrts=["Item not defined: ","Item needs height: ","Item needs width: "];
  38.  
  39.     if(Trigger.onload)Dummy=Trigger.onload;
  40.     Trigger.onload=Go;
  41.  
  42. function Dummy(){return}
  43.  
  44. function CnclSlct(){return false}
  45.  
  46. function RePos(){
  47.     FrstWinWdth=ExpYes?FCmplnt?FHtml.clientWidth:FrstLoc.document.body.clientWidth:FrstLoc.innerWidth;
  48.     FrstWinHght=ExpYes?FCmplnt?FHtml.clientHeight:FrstLoc.document.body.clientHeight:FrstLoc.innerHeight;
  49.     ScWinWdth=ExpYes?SCmplnt?ScHtml.clientWidth:ScLoc.document.body.clientWidth:ScLoc.innerWidth;
  50.     ScWinHght=ExpYes?SCmplnt?ScHtml.clientHeight:ScLoc.document.body.clientHeight:ScLoc.innerHeight;
  51.     if(MenuCentered=='justify'&&FirstLineHorizontal){
  52.         FrstCntnr.style.width=FrstWinWdth+P_X;
  53.         var LftXtra=(DomNav&&!Opr)||FCmplnt?LeftPaddng:0;
  54.         ClcJus();
  55.         var P=FrstCntnr.FrstMbr,W=Menu1[5],i;
  56.         for(i=0;i<NoOffFirstLineMenus;i++){P.style.width=W+P_X;P=P.PrvMbr}}
  57.     StaticPos=-1;
  58.     if(TargetLoc)ClcTrgt();
  59.     if(MenuCentered)ClcLft();
  60.     if(MenuVerticalCentered)ClcTp();
  61.     PosMenu(FrstCntnr,StartTop,StartLeft)}
  62.  
  63. function UnLoaded(){
  64.     if(CloseTmr)clearTimeout(CloseTmr);
  65.     Loadd=0; Creatd=0;
  66.     if(HideTop){
  67.         var FCStyle=Nav4?FrstCntnr:FrstCntnr.style;
  68.         FCStyle.visibility=M_Hide}}
  69.  
  70. function ReDoWhole(){
  71.     if(ScWinWdth!=ScLoc.innerWidth||ScWinHght!=ScLoc.innerHeight||FrstWinWdth!=FrstLoc.innerWidth||FrstWinHght!=FrstLoc.innerHeight)Doc.location.reload()}
  72.  
  73. function Check(WMnu,NoOf){
  74.     var i,array,ArrayLoc;
  75.     ArrayLoc=parent.frames[0]?parent.frames[FirstLineFrame]:self;
  76.     for(i=0;i<NoOf;i++){
  77.         array=WMnu+eval(i+1);
  78.         if(!ArrayLoc[array]){WbMstrAlrt(0,array); return false}
  79.         if(i==0){    if(!ArrayLoc[array][4]){WbMstrAlrt(1,array); return false}
  80.             if(!ArrayLoc[array][5]){WbMstrAlrt(2,array); return false}}
  81.         if(ArrayLoc[array][3])if(!Check(array+'_',ArrayLoc[array][3])) return false}
  82.     return true}
  83.  
  84. function WbMstrAlrt(No,Xtra){
  85.     return confirm(WbMstrAlrts[No]+Xtra+'   ')}
  86.  
  87. function Go(){
  88.     Dummy();
  89.     if(Loadd||!PosStrt)return;
  90.     BeforeStart();
  91.     Creatd=0; Loadd=1;
  92.     status='Brother Resource Kit 2003';
  93.     if(FirstLineFrame =="" || !parent.frames[FirstLineFrame]){
  94.         FirstLineFrame=SecLineFrame;
  95.         if(FirstLineFrame =="" || !parent.frames[FirstLineFrame]){
  96.             FirstLineFrame=SecLineFrame=DocTargetFrame;
  97.             if(FirstLineFrame =="" || !parent.frames[FirstLineFrame])FirstLineFrame=SecLineFrame=DocTargetFrame=''}}
  98.     if(SecLineFrame =="" || !parent.frames[SecLineFrame]){
  99.         SecLineFrame=DocTargetFrame;
  100.         if(SecLineFrame =="" || !parent.frames[SecLineFrame])SecLineFrame=DocTargetFrame=FirstLineFrame}
  101.     if(DocTargetFrame =="" || !parent.frames[DocTargetFrame])DocTargetFrame=SecLineFrame;
  102.     if(WebMasterCheck){    if(!Check('Menu',NoOffFirstLineMenus)){status='Brother Resource Kit 2003';return}}
  103.     FrstLoc=FirstLineFrame!=""?parent.frames[FirstLineFrame]:window;
  104.     ScLoc=SecLineFrame!=""?parent.frames[SecLineFrame]:window;
  105.     DcLoc=DocTargetFrame!=""?parent.frames[DocTargetFrame]:window;
  106.     if (FrstLoc==ScLoc) AcrssFrms=0;
  107.     if (AcrssFrms)FirstLineHorizontal=MenuFramesVertical?0:1;
  108.     if(Exp6Plus||Opr){
  109.         FHtml=FrstLoc.document.getElementsByTagName("HTML")[0];ScHtml=ScLoc.document.getElementsByTagName("HTML")[0];
  110.         FCmplnt=FrstLoc.document.compatMode.indexOf("CSS")==-1?0:1;SCmplnt=ScLoc.document.compatMode.indexOf("CSS")==-1?0:1}
  111.     FrstWinWdth=ExpYes?FCmplnt?FHtml.clientWidth:FrstLoc.document.body.clientWidth:FrstLoc.innerWidth;
  112.     FrstWinHght=ExpYes?FCmplnt?FHtml.clientHeight:FrstLoc.document.body.clientHeight:FrstLoc.innerHeight;
  113.     ScWinWdth=ExpYes?SCmplnt?ScHtml.clientWidth:ScLoc.document.body.clientWidth:ScLoc.innerWidth;
  114.     ScWinHght=ExpYes?SCmplnt?ScHtml.clientHeight:ScLoc.document.body.clientHeight:ScLoc.innerHeight;
  115.     if(Nav4){    CntrTxt=MenuTextCentered!='left'?"<div align='"+MenuTextCentered+"'>":"";
  116.         TxtClose="</font>"+MenuTextCentered!='left'?"</div>":""}
  117.     FirstColPos=Nav4?FrstLoc.document:FrstLoc.document.body;
  118.     SecColPos=Nav4?ScLoc.document:ScLoc.document.body;
  119.     DocColPos=Nav4?DcLoc.document:ScLoc.document.body;
  120.     if (TakeOverBgColor)FirstColPos.bgColor=AcrssFrms?SecColPos.bgColor:DocColPos.bgColor;
  121.     if(MenuCentered=='justify'&&FirstLineHorizontal)ClcJus();
  122.     if(FrstCreat){
  123.         FrstCntnr=CreateMenuStructure('Menu',NoOffFirstLineMenus);
  124.         FrstCreat=AcrssFrms?0:1}
  125.     else CreateMenuStructureAgain('Menu',NoOffFirstLineMenus);
  126.     if(TargetLoc)ClcTrgt();
  127.     if(MenuCentered)ClcLft();
  128.     if(MenuVerticalCentered)ClcTp();
  129.     PosMenu(FrstCntnr,StartTop,StartLeft);
  130.     IniFlg=1;
  131.     Initiate();
  132.     Creatd=1;
  133.     if (AcrssFrms){
  134.         ScLdAgainWin=ExpYes?ScLoc.document.body:ScLoc;
  135.         ScLdAgainWin.onunload=UnLoaded}
  136.     Trigger.onresize=Nav4?ReDoWhole:RePos;
  137.     AfterBuild();
  138.     if(MenuVerticalCentered=='static'&&!AcrssFrms)setInterval('KeepPos()',250);
  139.     status='Brother Resource Kit 2003'}
  140.  
  141. function KeepPos(){
  142.     var TS=ExpYes?SCmplnt?ScHtml.scrollTop:FrstLoc.document.body.scrollTop:FrstLoc.pageYOffset;
  143.     if(TS!=StaticPos){
  144.         var FCStyle=Nav4?FrstCntnr:FrstCntnr.style;
  145.         FrstCntnr.OrgTop=StartTop+TS;StaticPos=TS;
  146.         FCStyle.top=FrstCntnr.OrgTop+P_X}}
  147.  
  148. function ClcJus(){
  149.     var a=BorderBtwnElmnts?1:2,b=BorderBtwnElmnts?BorderWidth:0;
  150.     var Size=Math.round(((FrstWinWdth-a*BorderWidth)/NoOffFirstLineMenus)-b),i,j;
  151.     for(i=1;i<NoOffFirstLineMenus+1;i++){j=eval('Menu'+i);j[5]=Size}
  152.     StartLeft=0}
  153.  
  154. function ClcTrgt(){
  155.     var TLoc=Nav4?FrstLoc.document.layers[TargetLoc]:DomYes?FrstLoc.document.getElementById(TargetLoc):FrstLoc.document.all[TargetLoc];
  156.     StartTop=M_StrtTp;
  157.     StartLeft=M_StrtLft;
  158.     if(DomYes){
  159.         while(TLoc){StartTop+=TLoc.offsetTop;StartLeft+=TLoc.offsetLeft;TLoc=TLoc.offsetParent}}
  160.     else{    StartTop+=Nav4?TLoc.pageY:TLoc.offsetTop;StartLeft+=Nav4?TLoc.pageX:TLoc.offsetLeft}}
  161.  
  162. function ClcLft(){
  163.     if(MenuCentered!='left'&&MenuCentered!='justify'){
  164.         var Size=FrstWinWdth-(!Nav4?parseInt(FrstCntnr.style.width):FrstCntnr.clip.width);
  165.         StartLeft=M_StrtLft;
  166.         StartLeft+=MenuCentered=='right'?Size:Size/2}}
  167.  
  168. function ClcTp(){
  169.     if(MenuVerticalCentered!='top'&&MenuVerticalCentered!='static'){
  170.         var Size=FrstWinHght-(!Nav4?parseInt(FrstCntnr.style.height):FrstCntnr.clip.height);
  171.         StartTop=M_StrtTp;
  172.         StartTop+=MenuVerticalCentered=='bottom'?Size:Size/2}}
  173.  
  174. function PosMenu(CntnrPntr,Tp,Lt){
  175.     RcrsLvl++;
  176.     var Cmplnt=RcrsLvl==1?FCmplnt:SCmplnt;
  177.     var LftXtra=(DomNav&&!Opr)||Cmplnt?LeftPaddng:0;
  178.     var TpXtra=(DomNav&&!Opr)||Cmplnt?TopPaddng:0;
  179.     var Topi,Lefti,Hori;
  180.     var Cntnr=CntnrPntr;
  181.     var Mmbr=Cntnr.FrstMbr;
  182.     var CntnrStyle=!Nav4?Cntnr.style:Cntnr;
  183.     var MmbrStyle=!Nav4?Mmbr.style:Mmbr;
  184.     var PadL=Mmbr.value.indexOf('<')==-1?LftXtra:0;
  185.     var PadT=Mmbr.value.indexOf('<')==-1?TpXtra:0;
  186.     var MmbrWt=!Nav4?parseInt(MmbrStyle.width)+PadL:MmbrStyle.clip.width;
  187.     var MmbrHt=!Nav4?parseInt(MmbrStyle.height)+PadT:MmbrStyle.clip.height;
  188.     var CntnrWt=!Nav4?parseInt(CntnrStyle.width):CntnrStyle.clip.width;
  189.     var CntnrHt=!Nav4?parseInt(CntnrStyle.height):CntnrStyle.clip.height;
  190.     var SubTp,SubLt;
  191.     if (RcrsLvl==1 && AcrssFrms)!MenuFramesVertical?Tp=FrstWinHght-CntnrHt+(Nav4?4:0):Lt=RightToLeft?0:FrstWinWdth-CntnrWt+(Nav4?4:0);
  192.     if (RcrsLvl==2 && AcrssFrms)!MenuFramesVertical?Tp=0:Lt=RightToLeft?ScWinWdth-CntnrWt:0;
  193.     if (RcrsLvl==2 && AcrssFrms){Tp+=VerCorrect;Lt+=HorCorrect}
  194.     CntnrStyle.top=RcrsLvl==1?Tp+P_X:0;
  195.     Cntnr.OrgTop=Tp;
  196.     CntnrStyle.left=RcrsLvl==1?Lt+P_X:0;
  197.     Cntnr.OrgLeft=Lt;
  198.     if (RcrsLvl==1 && FirstLineHorizontal){
  199.         Hori=1;Lefti=CntnrWt-MmbrWt-2*BorderWidth;Topi=0}
  200.     else{    Hori=Lefti=0;Topi=CntnrHt-MmbrHt-2*BorderWidth}
  201.     while(Mmbr!=null){
  202.         MmbrStyle.left=Lefti+BorderWidth+P_X;
  203.         MmbrStyle.top=Topi+BorderWidth+P_X;
  204.         if(Nav4)Mmbr.CmdLyr.moveTo(Lefti+BorderWidth,Topi+BorderWidth);
  205.         if(Mmbr.ChildCntnr){
  206.             if(RightToLeft)ChldCntnrWdth=Nav4?Mmbr.ChildCntnr.clip.width:parseInt(Mmbr.ChildCntnr.style.width);
  207.             if(Hori){    SubTp=Topi+MmbrHt+2*BorderWidth;
  208.                 SubLt=RightToLeft?Lefti+MmbrWt-ChldCntnrWdth:Lefti}
  209.             else{    SubLt=RightToLeft?Lefti-ChldCntnrWdth+ChildOverlap*MmbrWt+BorderWidth:Lefti+(1-ChildOverlap)*MmbrWt+BorderWidth;
  210.                 SubTp=RcrsLvl==1&&AcrssFrms?Topi:Topi+ChildVerticalOverlap*MmbrHt}
  211.             PosMenu(Mmbr.ChildCntnr,SubTp,SubLt)}
  212.         Mmbr=Mmbr.PrvMbr;
  213.         if(Mmbr){    MmbrStyle=!Nav4?Mmbr.style:Mmbr;
  214.             PadL=Mmbr.value.indexOf('<')==-1?LftXtra:0;
  215.             PadT=Mmbr.value.indexOf('<')==-1?TpXtra:0;
  216.             MmbrWt=!Nav4?parseInt(MmbrStyle.width)+PadL:MmbrStyle.clip.width;
  217.             MmbrHt=!Nav4?parseInt(MmbrStyle.height)+PadT:MmbrStyle.clip.height;
  218.             Hori?Lefti-=BorderBtwnElmnts?(MmbrWt+BorderWidth):(MmbrWt):Topi-=BorderBtwnElmnts?(MmbrHt+BorderWidth):(MmbrHt)}}
  219.     RcrsLvl--}
  220.  
  221. function Initiate(){
  222.     if(IniFlg){    Init(FrstCntnr);IniFlg=0;
  223.         if(ShwFlg)AfterCloseAll();ShwFlg=0}}
  224.  
  225. function Init(CntnrPntr){
  226.     var Mmbr=CntnrPntr.FrstMbr;
  227.     var MCStyle=Nav4?CntnrPntr:CntnrPntr.style;
  228.     RcrsLvl++;
  229.     MCStyle.visibility=RcrsLvl==1?M_Show:M_Hide;
  230.     while(Mmbr!=null){
  231.         if(Mmbr.Hilite){Mmbr.Hilite=0;if(KeepHilite)LowItem(Mmbr)}
  232.         if(Mmbr.ChildCntnr) Init(Mmbr.ChildCntnr);
  233.         Mmbr=Mmbr.PrvMbr}
  234.     RcrsLvl--}
  235.  
  236. function ClearAllChilds(Pntr){
  237.     var CPCCStyle;
  238.     while (Pntr){
  239.         if(Pntr.Hilite){
  240.             Pntr.Hilite=0;
  241.             if(KeepHilite)LowItem(Pntr);
  242.             if(Pntr.ChildCntnr){
  243.                 CPCCStyle=Nav4?Pntr.ChildCntnr:Pntr.ChildCntnr.style;
  244.                 CPCCStyle.visibility=M_Hide;
  245.                 ClearAllChilds(Pntr.ChildCntnr.FrstMbr)}
  246.             break}
  247.         Pntr=Pntr.PrvMbr}}
  248.  
  249. function GoTo(){
  250.     if(this.LinkTxt){
  251.         status='Brother Resource Kit 2003';
  252.         var HP=Nav4?this.LowLyr:this;
  253.         LowItem(HP);
  254.         this.LinkTxt.indexOf('javascript:')!=-1?eval(this.LinkTxt):DcLoc.location.href=this.LinkTxt}}
  255.  
  256. function HiliteItem(P){
  257.     if(Nav4){
  258.         if(P.ro)P.document.images[P.rid].src=P.ri2;
  259.         else{    if(P.HiBck)P.bgColor=P.HiBck;
  260.             if(P.value.indexOf('<img')==-1){
  261.                 P.document.write(P.Ovalue);
  262.                 P.document.close()}}}
  263.     else{    if(P.ro){    var Lc=P.Level==1?FrstLoc:ScLoc;
  264.             Lc.document.images[P.rid].src=P.ri2}
  265.         else{    if(P.HiBck)P.style.backgroundColor=P.HiBck;
  266.             if(P.HiFntClr)P.style.color=P.HiFntClr}}
  267.     P.Hilite=1}
  268.  
  269. function LowItem(P){
  270.     if(P.ro){    if(Nav4)P.document.images[P.rid].src=P.ri1;
  271.         else{    var Lc=P.Level==1?FrstLoc:ScLoc;
  272.             Lc.document.images[P.rid].src=P.ri1}}
  273.     else{    if(Nav4){    if(P.LoBck)P.bgColor=P.LoBck;
  274.             if(P.value.indexOf('<img')==-1){
  275.                 P.document.write(P.value);
  276.                 P.document.close()}}
  277.         else{    if(P.LoBck)P.style.backgroundColor=P.LoBck;
  278.             if(P.LwFntClr)P.style.color=P.LwFntClr}}}
  279.  
  280. function OpenMenu(){    
  281.     if(!Loadd||!Creatd) return;
  282.     var TpScrlld=ExpYes?SCmplnt?ScHtml.scrollTop:ScLoc.document.body.scrollTop:ScLoc.pageYOffset;
  283.     var LScrlld=ExpYes?SCmplnt?ScHtml.scrollLeft:ScLoc.document.body.scrollLeft:ScLoc.pageXOffset;
  284.     var CCnt=Nav4?this.LowLyr.ChildCntnr:this.ChildCntnr;
  285.     var ThisHt=Nav4?this.clip.height:parseInt(this.style.height);
  286.     var ThisWt=Nav4?this.clip.width:parseInt(this.style.width);
  287.     var ThisLft=AcrssFrms&&this.Level==1&&!FirstLineHorizontal?0:Nav4?this.Container.left:parseInt(this.Container.style.left);
  288.     var ThisTp=AcrssFrms&&this.Level==1&&FirstLineHorizontal?0:Nav4?this.Container.top:parseInt(this.Container.style.top);
  289.     var HP=Nav4?this.LowLyr:this;
  290.     CurrntOvr=this;
  291.     IniFlg=0;
  292.     ClearAllChilds(this.Container.FrstMbr);
  293.     HiliteItem(HP);
  294.     if(CCnt!=null){
  295.         if(!ShwFlg){ShwFlg=1;    BeforeFirstOpen()}
  296.         var CCW=Nav4?this.LowLyr.ChildCntnr.clip.width:parseInt(this.ChildCntnr.style.width);
  297.         var CCH=Nav4?this.LowLyr.ChildCntnr.clip.height:parseInt(this.ChildCntnr.style.height);
  298.         var ChCntTL=Nav4?this.LowLyr.ChildCntnr:this.ChildCntnr.style;
  299.         var SubLt=AcrssFrms&&this.Level==1?CCnt.OrgLeft+ThisLft+LScrlld:CCnt.OrgLeft+ThisLft;
  300.         var SubTp=AcrssFrms&&this.Level==1?CCnt.OrgTop+ThisTp+TpScrlld:CCnt.OrgTop+ThisTp;
  301.         if(MenuWrap){
  302.             if(RightToLeft){
  303.                 if(SubLt<LScrlld)SubLt=this.Level==1?LScrlld:SubLt+(CCW+(1-2*ChildOverlap)*ThisWt);
  304.                 if(SubLt+CCW>ScWinWdth+LScrlld)SubLt=ScWinWdth+LScrlld-CCW}
  305.             else{    if(SubLt+CCW>ScWinWdth+LScrlld)SubLt=this.Level==1?ScWinWdth+LScrlld-CCW:SubLt-(CCW+(1-2*ChildOverlap)*ThisWt);
  306.                 if(SubLt<LScrlld)SubLt=LScrlld}
  307.             if(SubTp+CCH>TpScrlld+ScWinHght)SubTp=this.Level==1?SubTp=TpScrlld+ScWinHght-CCH:SubTp-CCH+(1-2*ChildVerticalOverlap)*ThisHt;
  308.             if(SubTp<TpScrlld)SubTp=TpScrlld}
  309.         ChCntTL.top=SubTp+P_X;ChCntTL.left=SubLt+P_X;ChCntTL.visibility=M_Show}
  310.     status='Brother Resource Kit 2003'}
  311.  
  312. function OpenMenuClick(){
  313.     if(!Loadd||!Creatd) return;
  314.     var HP=Nav4?this.LowLyr:this;
  315.     CurrntOvr=this;
  316.     IniFlg=0;
  317.     ClearAllChilds(this.Container.FrstMbr);
  318.     HiliteItem(HP);
  319.     status='Brother Resource Kit 2003'}
  320.  
  321. function CloseMenu(){
  322.     if(!Loadd||!Creatd) return;
  323.     if(!KeepHilite){
  324.         var HP=Nav4?this.LowLyr:this;
  325.         LowItem(HP)}
  326.     status='Brother Resource Kit 2003';
  327.     if(this==CurrntOvr){
  328.         IniFlg=1;
  329.         if(CloseTmr)clearTimeout(CloseTmr);
  330.         CloseTmr=setTimeout('Initiate(CurrntOvr)',DissapearDelay)}}
  331.  
  332. function CntnrSetUp(Wdth,Hght,NoOff){
  333.     var x=RcrsLvl==1?BorderColor:BorderSubColor;
  334.     this.FrstMbr=null;
  335.     this.OrgLeft=this.OrgTop=0;
  336.     if(x)this.bgColor=x;
  337.     if(Nav4){    this.visibility='hide';
  338.         this.resizeTo(Wdth,Hght)}
  339.     else{    if(x)this.style.backgroundColor=x;
  340.         this.style.width=Wdth+P_X;
  341.         this.style.height=Hght+P_X;
  342.         this.style.fontFamily=FontFamily;
  343.         this.style.fontWeight=FontBold?'bold':'normal';
  344.         this.style.fontStyle=FontItalic?'italic':'normal';
  345.         this.style.fontSize=FontSize+'pt';
  346.         this.style.zIndex=RcrsLvl+Ztop}}
  347.  
  348. function MbrSetUp(MmbrCntnr,PrMmbr,WhatMenu,Wdth,Hght){
  349.     var Location=RcrsLvl==1?FrstLoc:ScLoc;
  350.     var MemVal=eval(WhatMenu+'[0]');
  351.     var t,T,L,W,H,S;
  352.     var a,b,c,d;
  353.     var Cmplnt=RcrsLvl==1?FCmplnt:SCmplnt;
  354.     var LftXtra=(DomNav&&!Opr)||Cmplnt?LeftPaddng:0;
  355.     var TpXtra=(DomNav&&!Opr)||Cmplnt?TopPaddng:0;
  356.     this.PrvMbr=PrMmbr;
  357.     this.Level=RcrsLvl;
  358.     this.LinkTxt=eval(WhatMenu+'[1]');
  359.     this.Container=MmbrCntnr;
  360.     this.ChildCntnr=null;
  361.     this.Hilite=0;
  362.     this.style.overflow='hidden';
  363.     this.style.cursor=ExpYes&&(this.LinkTxt||(RcrsLvl==1&&UnfoldsOnClick))?'hand':'default';
  364.     this.ro=0;
  365.     if(MemVal.indexOf('rollover')!=-1){
  366.         this.ro=1;
  367.         this.ri1=MemVal.substring(MemVal.indexOf(':')+1,MemVal.lastIndexOf(':'));
  368.         this.ri2=MemVal.substring(MemVal.lastIndexOf(':')+1,MemVal.length);
  369.         this.rid=WhatMenu+'i';
  370.         MemVal="<img src=\""+this.ri1+"\" name=\""+this.rid+"\" width=\""+Wdth+"\" height=\""+Hght+"\">"}
  371.     this.value=MemVal;
  372.     if(RcrsLvl==1){
  373.         a=LowBgColor;
  374.         b=HighBgColor;
  375.         c=FontLowColor;
  376.         d=FontHighColor}
  377.     else{    a=LowSubBgColor;
  378.         b=HighSubBgColor;
  379.         c=FontSubLowColor;
  380.         d=FontSubHighColor}
  381.     this.LoBck=a;
  382.     this.LwFntClr=c;
  383.     this.HiBck=b;
  384.     this.HiFntClr=d;
  385.     this.style.color=this.LwFntClr;
  386.     if(this.LoBck)this.style.backgroundColor=this.LoBck;
  387.     this.style.textAlign=MenuTextCentered;
  388.     if(eval(WhatMenu+'[2]'))this.style.backgroundImage="url(\'"+eval(WhatMenu+'[2]')+"\')";
  389.     if(MemVal.indexOf('<')==-1){
  390.         this.style.width=Wdth-LftXtra+P_X;
  391.         this.style.height=Hght-TpXtra+P_X;
  392.         this.style.paddingLeft=LeftPaddng+P_X;
  393.         this.style.paddingTop=TopPaddng+P_X}
  394.     else{    this.style.width=Wdth+P_X;
  395.         this.style.height=Hght+P_X}
  396.     if(MemVal.indexOf('<')==-1&&DomYes){
  397.         t=Location.document.createTextNode(MemVal);
  398.         this.appendChild(t)}
  399.     else this.innerHTML=MemVal;
  400.     if(eval(WhatMenu+'[3]')&&ShowArrow){
  401.         a=RcrsLvl==1&&FirstLineHorizontal?3:RightToLeft?6:0;
  402.         S=Arrws[a];
  403.         W=Arrws[a+1];
  404.         H=Arrws[a+2];
  405.         T=RcrsLvl==1&&FirstLineHorizontal?Hght-H-2:(Hght-H)/2;
  406.         L=RightToLeft?2:Wdth-W-2;
  407.         if(DomYes){
  408.  
  409.             t=Location.document.createElement('img');
  410.             this.appendChild(t);
  411.             t.style.position='absolute';
  412.             t.src=S;
  413.  
  414.             t.style.width=W+P_X;
  415.             t.style.height=H+P_X;
  416.             t.style.top=T+P_X;
  417.             t.style.left=L+P_X}
  418.         else{    MemVal+="<div style='position:absolute; top:"+T+"; left:"+L+"; width:"+W+"; height:"+H+";visibility:inherit'><img src='"+S+"'></div>";
  419.             this.innerHTML=MemVal}}
  420.     if(ExpYes){this.onselectstart=CnclSlct;
  421.         this.onmouseover=RcrsLvl==1&&UnfoldsOnClick?OpenMenuClick:OpenMenu;
  422.         this.onmouseout=CloseMenu;
  423.         this.onclick=RcrsLvl==1&&UnfoldsOnClick&&eval(WhatMenu+'[3]')?OpenMenu:GoTo    }
  424.     else{    RcrsLvl==1&&UnfoldsOnClick?this.addEventListener('mouseover',OpenMenuClick,false):this.addEventListener('mouseover',OpenMenu,false);
  425.         this.addEventListener('mouseout',CloseMenu,false);
  426.         RcrsLvl==1&&UnfoldsOnClick&&eval(WhatMenu+'[3]')?this.addEventListener('click',OpenMenu,false):this.addEventListener('click',GoTo,false)}}
  427.  
  428. function NavMbrSetUp(MmbrCntnr,PrMmbr,WhatMenu,Wdth,Hght){
  429.     var a,b,c,d;
  430.     if(RcrsLvl==1){
  431.         a=LowBgColor;
  432.         b=HighBgColor;
  433.         c=FontLowColor;
  434.         d=FontHighColor}
  435.     else {    a=LowSubBgColor;
  436.         b=HighSubBgColor;
  437.         c=FontSubLowColor;
  438.         d=FontSubHighColor    }
  439.     this.value=eval(WhatMenu+'[0]');
  440.     this.ro=0;
  441.     if(this.value.indexOf('rollover')!=-1){
  442.         this.ro=1;
  443.         this.ri1=this.value.substring(this.value.indexOf(':')+1,this.value.lastIndexOf(':'));
  444.         this.ri2=this.value.substring(this.value.lastIndexOf(':')+1,this.value.length);
  445.         this.rid=WhatMenu+'i';this.value="<img src='"+this.ri1+"' name='"+this.rid+"'>"}
  446.     if(LeftPaddng&&this.value.indexOf('<')==-1&&MenuTextCentered=='left')this.value=' \;'+this.value;
  447.     if(FontBold)this.value=this.value.bold();
  448.     if(FontItalic)this.value=this.value.italics();
  449.     this.Ovalue=this.value;
  450.     this.value=this.value.fontcolor(c);
  451.     this.Ovalue=this.Ovalue.fontcolor(d);
  452.     this.value=CntrTxt+"<font face='"+FontFamily+"' point-size='"+FontSize+"'>"+this.value+TxtClose;
  453.     this.Ovalue=CntrTxt+"<font face='"+FontFamily+"' point-size='"+FontSize+"'>"+this.Ovalue+TxtClose;
  454.     this.LoBck=a;
  455.     this.HiBck=b;
  456.     this.ChildCntnr=null;
  457.     this.PrvMbr=PrMmbr;
  458.     this.Hilite=0;
  459.     this.visibility='inherit';
  460.     if(this.LoBck)this.bgColor=this.LoBck;
  461.     this.resizeTo(Wdth,Hght);
  462.     if(!AcrssFrms&&eval(WhatMenu+'[2]'))this.background.src=eval(WhatMenu+'[2]');
  463.     this.document.write(this.value);
  464.     this.document.close();
  465.     this.CmdLyr=new Layer(Wdth,MmbrCntnr);
  466.     this.CmdLyr.Level=RcrsLvl;
  467.     this.CmdLyr.LinkTxt=eval(WhatMenu+'[1]');
  468.     this.CmdLyr.visibility='inherit';
  469.     this.CmdLyr.onmouseover=RcrsLvl==1&&UnfoldsOnClick?OpenMenuClick:OpenMenu;
  470.     this.CmdLyr.onmouseout=CloseMenu;
  471.     this.CmdLyr.captureEvents(Event.MOUSEUP);
  472.     this.CmdLyr.onmouseup=RcrsLvl==1&&UnfoldsOnClick&&eval(WhatMenu+'[3]')?OpenMenu:GoTo;
  473.     this.CmdLyr.LowLyr=this;
  474.     this.CmdLyr.resizeTo(Wdth,Hght);
  475.     this.CmdLyr.Container=MmbrCntnr;
  476.     if(eval(WhatMenu+'[3]')&&ShowArrow){
  477.         a=RcrsLvl==1&&FirstLineHorizontal?3:RightToLeft?6:0;
  478.         this.CmdLyr.ImgLyr=new Layer(Arrws[a+1],this.CmdLyr);
  479.         this.CmdLyr.ImgLyr.visibility='inherit';
  480.         this.CmdLyr.ImgLyr.top=RcrsLvl==1&&FirstLineHorizontal?Hght-Arrws[a+2]-2:(Hght-Arrws[a+2])/2;
  481.         this.CmdLyr.ImgLyr.left=RightToLeft?2:Wdth-Arrws[a+1]-2;
  482.         this.CmdLyr.ImgLyr.width=Arrws[a+1];
  483.         this.CmdLyr.ImgLyr.height=Arrws[a+2];
  484.         ImgStr="<img src='"+Arrws[a]+"' width='"+Arrws[a+1]+"' height='"+Arrws[a+2]+"'>";
  485.         this.CmdLyr.ImgLyr.document.write(ImgStr);
  486.         this.CmdLyr.ImgLyr.document.close()}}
  487.  
  488. function CreateMenuStructure(MName,NumberOf){
  489.     RcrsLvl++;
  490.     var i,NoOffSubs,Mbr,Wdth=0,Hght=0;
  491.     var PrvMmbr=null;
  492.     var WMnu=MName+'1';
  493.     var MenuWidth=eval(WMnu+'[5]');
  494.     var MenuHeight=eval(WMnu+'[4]');
  495.     var Location=RcrsLvl==1?FrstLoc:ScLoc;
  496.     if (RcrsLvl==1&&FirstLineHorizontal){
  497.         for(i=1;i<NumberOf+1;i++){
  498.             WMnu=MName+eval(i);
  499.             Wdth=eval(WMnu+'[5]')?Wdth+eval(WMnu+'[5]'):Wdth+MenuWidth}
  500.         Wdth=BorderBtwnElmnts?Wdth+(NumberOf+1)*BorderWidth:Wdth+2*BorderWidth;Hght=MenuHeight+2*BorderWidth}
  501.     else{    for(i=1;i<NumberOf+1;i++){
  502.             WMnu=MName+eval(i);
  503.             Hght=eval(WMnu+'[4]')?Hght+eval(WMnu+'[4]'):Hght+MenuHeight}
  504.         Hght=BorderBtwnElmnts?Hght+(NumberOf+1)*BorderWidth:Hght+2*BorderWidth;Wdth=MenuWidth+2*BorderWidth}
  505.     if(DomYes){
  506.         var MmbrCntnr=Location.document.createElement("div");
  507.         MmbrCntnr.style.position='absolute';
  508.         MmbrCntnr.style.visibility='hidden';
  509.         Location.document.body.appendChild(MmbrCntnr)}
  510.     else{    if(Nav4) var MmbrCntnr=new Layer(Wdth,Location)
  511.         else{    WMnu+='c';
  512.             Location.document.body.insertAdjacentHTML("AfterBegin","<div id='"+WMnu+"' style='visibility:hidden; position:absolute;'><\/div>");
  513.             var MmbrCntnr=Location.document.all[WMnu]}}
  514.     MmbrCntnr.SetUp=CntnrSetUp;
  515.     MmbrCntnr.SetUp(Wdth,Hght,NumberOf);
  516.     if(Exp4){    MmbrCntnr.InnerString='';
  517.         for(i=1;i<NumberOf+1;i++){
  518.             WMnu=MName+eval(i);
  519.             MmbrCntnr.InnerString+="<div id='"+WMnu+"' style='position:absolute;'><\/div>"}
  520.         MmbrCntnr.innerHTML=MmbrCntnr.InnerString}
  521.     for(i=1;i<NumberOf+1;i++){
  522.         WMnu=MName+eval(i);
  523.         NoOffSubs=eval(WMnu+'[3]');
  524.         Wdth=RcrsLvl==1&&FirstLineHorizontal?eval(WMnu+'[5]')?eval(WMnu+'[5]'):MenuWidth:MenuWidth;
  525.         Hght=RcrsLvl==1&&FirstLineHorizontal?MenuHeight:eval(WMnu+'[4]')?eval(WMnu+'[4]'):MenuHeight;
  526.         if(DomYes){
  527.             Mbr=Location.document.createElement("div");
  528.             Mbr.style.position='absolute';
  529.             Mbr.style.visibility='inherit';
  530.             MmbrCntnr.appendChild(Mbr)}
  531.         else Mbr=Nav4?new Layer(Wdth,MmbrCntnr):Location.document.all[WMnu];
  532.         Mbr.SetUp=Nav4?NavMbrSetUp:MbrSetUp;
  533.         Mbr.SetUp(MmbrCntnr,PrvMmbr,WMnu,Wdth,Hght);
  534.         if(NoOffSubs) Mbr.ChildCntnr=CreateMenuStructure(WMnu+'_',NoOffSubs);
  535.         PrvMmbr=Mbr}
  536.     MmbrCntnr.FrstMbr=Mbr;
  537.     RcrsLvl--;
  538.     return(MmbrCntnr)}
  539.  
  540. function CreateMenuStructureAgain(MName,NumberOf){
  541.     var i,WMnu,NoOffSubs,PrvMmbr,Mbr=FrstCntnr.FrstMbr;
  542.     RcrsLvl++;
  543.     for(i=NumberOf;i>0;i--){
  544.         WMnu=MName+eval(i);
  545.         NoOffSubs=eval(WMnu+'[3]');
  546.         PrvMmbr=Mbr;
  547.         if(NoOffSubs)Mbr.ChildCntnr=CreateMenuStructure(WMnu+'_',NoOffSubs);
  548.         Mbr=Mbr.PrvMbr}
  549.     RcrsLvl--}